//定义一个动态字符数组，输入一串字符，要求将所有单词输出，求最长单词的长度，并将该单词输出。
//（假设短文最后以”.”结束，单词之间以”,”活着1空格分割，不出现其他的符号）

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct shuzu
{
    char danci[20];
    struct shuzu *pnext;
}shu;

shu *mkCharNode()
{
    shu *ch=(shu*)malloc(sizeof(shu));
    if(NULL==ch)
    {
        exit(EXIT_FAILURE);
    }
    else
    {
        memset(ch, 0, sizeof(shu));
    }
    return ch;
}
int main(void)
{
    shu *ch=NULL;
    shu *max=NULL;
    int flag=0;
    printf("请输入文章，单词以空格隔开，以点结束!\n");
    while(flag==0)
    {
        ch=mkCharNode();
        scanf("%s",ch->danci);
        if(NULL==max)
        {
            max=ch;
            printf("文章：%s ",ch->danci);
        }
        else if(strcmp(ch->danci,".")==0)
        {
            flag=1;
            printf("%s ",ch->danci);
        }
        else
        {
            printf("%s ",ch->danci);
            if(strlen(max->danci)<strlen(ch->danci))
            {
                max=ch;
            }
        }
        ch=ch->pnext;
    }
    printf("\n");
    printf("最大的单词是:%s\n",max->danci);
    return 0;
}